{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 线性回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch as t\n",
    "from matplotlib import pyplot as plt\n",
    "from IPython import display"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<torch._C.Generator at 0x1136b8cb0>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t.manual_seed(1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_fake_data(batch_size=16):\n",
    "    x=t.rand(batch_size,1)*20\n",
    "    y=x*2+(1+t.randn(batch_size,1))*3\n",
    "    return x,y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x117d69048>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x,y=get_fake_data()\n",
    "plt.scatter(x.squeeze().numpy(),y.squeeze().numpy())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(\n",
       "  0.3198\n",
       " [torch.FloatTensor of size 1x1], \n",
       "  0\n",
       " [torch.FloatTensor of size 1x1])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "w=t.rand(1,1)\n",
    "b=t.zeros(1,1)\n",
    "w,b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "lr=0.001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.975541114807129 3.028477668762207\n",
      "2.103858709335327 3.0373001098632812\n",
      "1.894058346748352 3.0210161209106445\n",
      "1.9383480548858643 3.0295755863189697\n",
      "2.114346504211426 3.040125846862793\n",
      "2.0885510444641113 3.0399045944213867\n",
      "1.943505048751831 3.0255496501922607\n",
      "1.946333408355713 3.0255300998687744\n",
      "1.7525832653045654 3.0162949562072754\n",
      "1.9834144115447998 3.0374722480773926\n",
      "2.0025858879089355 3.037264823913574\n",
      "2.0586678981781006 3.054474115371704\n",
      "1.7904791831970215 3.0329558849334717\n",
      "2.0149731636047363 3.0489375591278076\n",
      "2.1205992698669434 3.0635528564453125\n",
      "1.9101637601852417 3.046971559524536\n",
      "2.0076727867126465 3.048137903213501\n",
      "1.8448231220245361 3.036637544631958\n",
      "1.948518991470337 3.0459446907043457\n",
      "1.9520584344863892 3.0489466190338135\n",
      "2.0390844345092773 3.0523273944854736\n",
      "1.9986460208892822 3.0527756214141846\n",
      "1.895153522491455 3.037914752960205\n",
      "1.9928412437438965 3.0529632568359375\n",
      "1.744502067565918 3.039219379425049\n",
      "2.022231101989746 3.066558361053467\n",
      "1.9753687381744385 3.067898988723755\n",
      "2.1287879943847656 3.080427408218384\n",
      "2.0582995414733887 3.080437183380127\n",
      "2.0414209365844727 3.0753591060638428\n",
      "1.9494738578796387 3.059907913208008\n",
      "2.0127851963043213 3.068436622619629\n",
      "1.8043138980865479 3.059265613555908\n",
      "2.0649333000183105 3.0844900608062744\n",
      "1.8433427810668945 3.068445920944214\n",
      "1.9765769243240356 3.0934722423553467\n",
      "1.9487414360046387 3.098935127258301\n",
      "1.9823336601257324 3.1061670780181885\n",
      "1.9914705753326416 3.107557535171509\n",
      "1.8955243825912476 3.1036715507507324\n",
      "2.1171088218688965 3.1190567016601562\n",
      "1.9988960027694702 3.1033217906951904\n",
      "1.8836830854415894 3.092007875442505\n",
      "2.0611300468444824 3.102006196975708\n",
      "2.035529613494873 3.0954599380493164\n",
      "1.9252585172653198 3.085651397705078\n",
      "1.905257225036621 3.0822839736938477\n",
      "2.023305892944336 3.0873756408691406\n",
      "2.126080274581909 3.0987439155578613\n",
      "2.140007257461548 3.0985541343688965\n",
      "2.037642002105713 3.087059259414673\n",
      "2.016752243041992 3.093482732772827\n",
      "1.9377763271331787 3.084885835647583\n",
      "1.9038795232772827 3.078760862350464\n",
      "1.9379194974899292 3.0854604244232178\n",
      "1.9607332944869995 3.0911786556243896\n",
      "1.8937989473342896 3.0906288623809814\n",
      "1.8842222690582275 3.0930914878845215\n",
      "1.9058012962341309 3.095688581466675\n",
      "1.9107543230056763 3.104523181915283\n",
      "2.039961576461792 3.1168315410614014\n",
      "2.0192759037017822 3.1123478412628174\n",
      "2.0191197395324707 3.1125662326812744\n",
      "1.9434528350830078 3.1058006286621094\n",
      "2.0538172721862793 3.1162140369415283\n",
      "1.9558309316635132 3.1091699600219727\n",
      "2.146850824356079 3.1171908378601074\n",
      "2.0284554958343506 3.1041200160980225\n",
      "1.9750133752822876 3.0983235836029053\n",
      "1.8603161573410034 3.092890501022339\n",
      "1.9078763723373413 3.095021963119507\n",
      "2.0168633460998535 3.102914810180664\n",
      "1.781759262084961 3.089846134185791\n",
      "2.162288188934326 3.1160800457000732\n",
      "2.1239254474639893 3.1097326278686523\n",
      "1.7089413404464722 3.086923837661743\n",
      "1.9023325443267822 3.1061689853668213\n",
      "2.0448129177093506 3.114058017730713\n",
      "1.973352074623108 3.1103618144989014\n",
      "1.9446873664855957 3.1019747257232666\n",
      "1.8957215547561646 3.0987117290496826\n",
      "2.0380022525787354 3.11099910736084\n",
      "2.0079715251922607 3.1019227504730225\n",
      "1.9122960567474365 3.0929157733917236\n",
      "1.94607412815094 3.0947418212890625\n",
      "1.9507598876953125 3.101353168487549\n",
      "2.0781197547912598 3.108747720718384\n",
      "1.915008544921875 3.0928139686584473\n",
      "2.2409403324127197 3.1134746074676514\n",
      "1.8030173778533936 3.079408884048462\n",
      "2.0213427543640137 3.0978658199310303\n",
      "1.9195702075958252 3.091801643371582\n",
      "2.199239730834961 3.11301851272583\n",
      "2.093129873275757 3.100916862487793\n",
      "1.939828634262085 3.091000556945801\n",
      "2.0575761795043945 3.091745615005493\n",
      "2.0582666397094727 3.092334270477295\n",
      "1.9768472909927368 3.0874099731445312\n",
      "1.951680302619934 3.0835511684417725\n",
      "1.975794792175293 3.0808839797973633\n",
      "1.9409934282302856 3.076340913772583\n",
      "2.0700886249542236 3.0873522758483887\n",
      "2.0626156330108643 3.0845022201538086\n",
      "1.9328572750091553 3.0712757110595703\n",
      "1.9881861209869385 3.0843193531036377\n",
      "2.055896043777466 3.0970652103424072\n",
      "2.0008790493011475 3.0988550186157227\n",
      "2.1185359954833984 3.1136603355407715\n",
      "2.015031099319458 3.105862617492676\n",
      "1.860013484954834 3.095858097076416\n",
      "2.0482568740844727 3.1074085235595703\n",
      "2.06913685798645 3.113442897796631\n",
      "1.9321321249008179 3.0937771797180176\n",
      "2.248079776763916 3.118812322616577\n",
      "1.7021288871765137 3.0827066898345947\n",
      "1.9055726528167725 3.1037299633026123\n",
      "2.0056095123291016 3.1138484477996826\n",
      "1.9828699827194214 3.1099648475646973\n",
      "1.9989254474639893 3.1148102283477783\n",
      "1.8973407745361328 3.1140472888946533\n",
      "2.095818042755127 3.1276118755340576\n",
      "1.9237604141235352 3.1236424446105957\n",
      "2.0026097297668457 3.1299734115600586\n",
      "1.9060527086257935 3.1191246509552\n",
      "1.8981717824935913 3.120292901992798\n",
      "1.9296680688858032 3.1202280521392822\n",
      "2.045109510421753 3.1243526935577393\n",
      "1.9734387397766113 3.1218996047973633\n",
      "1.8939086198806763 3.1151256561279297\n",
      "1.9419370889663696 3.1165342330932617\n",
      "2.0375096797943115 3.1257071495056152\n",
      "2.0212199687957764 3.1270763874053955\n",
      "1.8786659240722656 3.1144917011260986\n",
      "1.961635708808899 3.11702036857605\n",
      "1.8845775127410889 3.11556339263916\n",
      "1.9333254098892212 3.1184334754943848\n",
      "2.076587438583374 3.1375811100006104\n",
      "2.075815200805664 3.1397955417633057\n",
      "1.809156894683838 3.1221909523010254\n",
      "2.1230950355529785 3.1387407779693604\n",
      "1.8282666206359863 3.1142404079437256\n",
      "1.9542536735534668 3.126805543899536\n",
      "2.049950361251831 3.133405923843384\n",
      "2.08168363571167 3.144788980484009\n",
      "2.0946104526519775 3.149015426635742\n",
      "1.9061269760131836 3.1332461833953857\n",
      "2.0105504989624023 3.1413931846618652\n",
      "1.8858542442321777 3.1367850303649902\n",
      "2.0592188835144043 3.139683723449707\n",
      "2.1266307830810547 3.1463921070098877\n",
      "1.713923692703247 3.1209065914154053\n",
      "2.0457043647766113 3.1455066204071045\n",
      "2.0174734592437744 3.1426236629486084\n",
      "2.0584499835968018 3.1495468616485596\n",
      "1.7061095237731934 3.1269216537475586\n",
      "1.8686943054199219 3.1468398571014404\n",
      "2.0399961471557617 3.15606689453125\n",
      "2.028623104095459 3.155467987060547\n",
      "2.068545341491699 3.1575310230255127\n",
      "2.041684865951538 3.1662650108337402\n",
      "1.967692494392395 3.165464401245117\n",
      "1.885979413986206 3.156806230545044\n",
      "1.9542633295059204 3.165609121322632\n",
      "2.0331320762634277 3.1722629070281982\n",
      "1.9933499097824097 3.1688854694366455\n",
      "1.9610655307769775 3.1631693840026855\n",
      "1.9805521965026855 3.167046308517456\n",
      "1.9234964847564697 3.156554698944092\n",
      "2.0655272006988525 3.174098014831543\n",
      "1.9305278062820435 3.1682748794555664\n",
      "1.9399182796478271 3.166794776916504\n",
      "2.1045145988464355 3.1733343601226807\n",
      "2.2375071048736572 3.182952404022217\n",
      "1.8673272132873535 3.159200668334961\n",
      "1.8528468608856201 3.1547939777374268\n",
      "1.7736364603042603 3.1481690406799316\n",
      "1.947258472442627 3.158078908920288\n",
      "2.051868200302124 3.1667072772979736\n",
      "2.107022285461426 3.168433427810669\n",
      "1.8151575326919556 3.151672601699829\n",
      "1.9716564416885376 3.1631927490234375\n",
      "2.115999937057495 3.172785997390747\n",
      "1.7577040195465088 3.146535634994507\n",
      "2.0369155406951904 3.165435314178467\n",
      "2.0908637046813965 3.1801769733428955\n",
      "1.8415099382400513 3.1615207195281982\n",
      "1.9404613971710205 3.163797378540039\n",
      "1.9414782524108887 3.162111520767212\n",
      "1.9549247026443481 3.1654322147369385\n",
      "1.911378264427185 3.15740704536438\n",
      "2.1169798374176025 3.1894898414611816\n",
      "1.8391220569610596 3.171093702316284\n",
      "2.0591747760772705 3.181572198867798\n",
      "1.9168946743011475 3.165786027908325\n",
      "1.9099626541137695 3.166916847229004\n",
      "1.9626330137252808 3.1742794513702393\n",
      "2.1077492237091064 3.186187744140625\n",
      "2.000274658203125 3.1751372814178467\n",
      "1.9529914855957031 3.172456741333008\n",
      "1.6999680995941162 3.156480550765991\n",
      "2.278196096420288 3.1993465423583984\n",
      "2.112116575241089 3.1820180416107178\n",
      "1.9064581394195557 3.161644458770752\n",
      "2.1617259979248047 3.177309036254883\n",
      "2.089447021484375 3.1709370613098145\n",
      "1.8822942972183228 3.1572911739349365\n",
      "1.8955745697021484 3.1503965854644775\n",
      "2.012735366821289 3.1585562229156494\n",
      "2.0304126739501953 3.157355785369873\n",
      "2.108288526535034 3.1628661155700684\n",
      "2.018101215362549 3.1669843196868896\n",
      "2.0865843296051025 3.1694345474243164\n",
      "1.9806382656097412 3.1563222408294678\n",
      "1.9542227983474731 3.1521966457366943\n",
      "1.7959457635879517 3.141441583633423\n",
      "1.900105595588684 3.148587703704834\n",
      "1.9535229206085205 3.1539673805236816\n",
      "1.978166937828064 3.150157928466797\n",
      "2.0790231227874756 3.152743101119995\n",
      "1.7247138023376465 3.132371664047241\n",
      "1.9122880697250366 3.1428754329681396\n",
      "2.178457260131836 3.1617136001586914\n",
      "2.069187879562378 3.151205539703369\n",
      "2.027019739151001 3.1499733924865723\n",
      "2.1100471019744873 3.1536216735839844\n",
      "1.9167689085006714 3.1415812969207764\n",
      "2.021700859069824 3.1498465538024902\n",
      "2.2889211177825928 3.165029525756836\n",
      "2.1793415546417236 3.150998592376709\n",
      "1.9277845621109009 3.138368606567383\n",
      "1.9095920324325562 3.1401684284210205\n",
      "2.1643424034118652 3.1599433422088623\n",
      "2.0094635486602783 3.1469268798828125\n",
      "1.982552170753479 3.1439051628112793\n",
      "1.91866934299469 3.144343137741089\n",
      "2.281687021255493 3.1669445037841797\n",
      "2.1038434505462646 3.1416993141174316\n",
      "2.021178960800171 3.1436610221862793\n",
      "2.0613555908203125 3.1427788734436035\n",
      "1.9832539558410645 3.1452107429504395\n",
      "2.0949835777282715 3.1519362926483154\n",
      "2.0347864627838135 3.1419849395751953\n",
      "2.060312032699585 3.140673875808716\n",
      "2.0194602012634277 3.126209020614624\n",
      "1.9456672668457031 3.1266701221466064\n",
      "1.9397639036178589 3.1291329860687256\n",
      "2.098174571990967 3.139038562774658\n",
      "1.9327852725982666 3.1279327869415283\n",
      "2.095973014831543 3.144120931625366\n",
      "2.0781335830688477 3.14113450050354\n",
      "1.8979761600494385 3.1304197311401367\n",
      "1.8904234170913696 3.1351089477539062\n",
      "2.017117977142334 3.151008367538452\n",
      "1.9077154397964478 3.144429922103882\n",
      "1.8620179891586304 3.1464197635650635\n",
      "1.9803895950317383 3.153271198272705\n",
      "2.0680410861968994 3.155606985092163\n",
      "1.9000905752182007 3.1441738605499268\n",
      "2.0270743370056152 3.1556265354156494\n",
      "1.9713129997253418 3.153236150741577\n",
      "2.145132303237915 3.164200782775879\n",
      "1.6812751293182373 3.1309595108032227\n",
      "2.0839743614196777 3.1613829135894775\n",
      "2.110118865966797 3.1561858654022217\n",
      "1.7988330125808716 3.1364996433258057\n",
      "2.103004217147827 3.1573970317840576\n",
      "1.9210046529769897 3.145350456237793\n",
      "1.822570562362671 3.1415231227874756\n",
      "2.051114082336426 3.1527233123779297\n",
      "1.96558678150177 3.1396944522857666\n",
      "2.1964304447174072 3.1545820236206055\n",
      "1.9665099382400513 3.140561819076538\n",
      "2.027449607849121 3.1528642177581787\n",
      "1.8673535585403442 3.1504194736480713\n",
      "2.1063733100891113 3.1662890911102295\n",
      "2.037280797958374 3.1618399620056152\n",
      "1.9565093517303467 3.150409460067749\n",
      "2.106956720352173 3.149941921234131\n",
      "2.001702308654785 3.131251573562622\n",
      "2.001488447189331 3.131735324859619\n",
      "1.858722448348999 3.116060495376587\n",
      "2.0302340984344482 3.1399950981140137\n",
      "2.061279773712158 3.136134386062622\n",
      "2.030531406402588 3.128196954727173\n",
      "2.009873151779175 3.122668981552124\n",
      "2.1241860389709473 3.1351194381713867\n",
      "1.9375112056732178 3.115269184112549\n",
      "2.074028491973877 3.1255836486816406\n",
      "2.0363755226135254 3.1103134155273438\n",
      "1.9388282299041748 3.100306987762451\n",
      "2.0347938537597656 3.1079959869384766\n",
      "2.0512545108795166 3.1137518882751465\n",
      "1.9894556999206543 3.1074910163879395\n",
      "1.910773515701294 3.100374221801758\n",
      "1.8116815090179443 3.095639228820801\n",
      "2.0535690784454346 3.1172935962677\n",
      "1.7954745292663574 3.100696086883545\n",
      "2.0816779136657715 3.125063180923462\n",
      "2.0519955158233643 3.126981019973755\n",
      "1.9577981233596802 3.119128704071045\n",
      "2.142629861831665 3.138634443283081\n",
      "1.9759787321090698 3.1236653327941895\n",
      "2.015723705291748 3.129312515258789\n",
      "1.9782884120941162 3.1281213760375977\n",
      "1.8354531526565552 3.1211400032043457\n",
      "2.0142645835876465 3.129957914352417\n",
      "1.9538565874099731 3.116997718811035\n",
      "1.9463629722595215 3.1158106327056885\n",
      "2.000113010406494 3.12111759185791\n",
      "2.041320562362671 3.1286916732788086\n",
      "1.9075593948364258 3.119811773300171\n",
      "1.9628820419311523 3.118988275527954\n",
      "1.9955878257751465 3.1244754791259766\n",
      "2.008889675140381 3.1190567016601562\n",
      "2.192880868911743 3.134382963180542\n",
      "2.195286989212036 3.1302947998046875\n",
      "2.077662229537964 3.119800329208374\n",
      "1.949112892150879 3.115185022354126\n",
      "2.002014636993408 3.119764804840088\n",
      "1.847123622894287 3.1078872680664062\n",
      "2.064086437225342 3.123385429382324\n",
      "1.9341892004013062 3.107248067855835\n",
      "1.8902084827423096 3.106281280517578\n",
      "2.1237614154815674 3.1199448108673096\n",
      "2.0683908462524414 3.11193585395813\n",
      "2.0214908123016357 3.1126608848571777\n",
      "1.9703482389450073 3.1091630458831787\n",
      "1.9591896533966064 3.1073546409606934\n",
      "2.2132530212402344 3.1217029094696045\n",
      "2.008774518966675 3.102585792541504\n",
      "1.9927549362182617 3.1031665802001953\n",
      "2.000566005706787 3.099761962890625\n",
      "2.148153305053711 3.1075949668884277\n",
      "2.1339149475097656 3.1092426776885986\n",
      "1.9466259479522705 3.1003830432891846\n",
      "1.8352363109588623 3.09629225730896\n",
      "2.0306057929992676 3.113917350769043\n",
      "2.0506248474121094 3.1153862476348877\n",
      "1.9670969247817993 3.1173899173736572\n",
      "2.0234875679016113 3.1253256797790527\n",
      "1.9744815826416016 3.1255578994750977\n",
      "2.0097973346710205 3.1265358924865723\n",
      "2.0009827613830566 3.123323440551758\n",
      "1.8835170269012451 3.1179208755493164\n",
      "2.008505344390869 3.126652240753174\n",
      "2.0916659832000732 3.1326394081115723\n",
      "2.130197286605835 3.1265995502471924\n",
      "2.138376474380493 3.1271069049835205\n",
      "1.9708263874053955 3.1199803352355957\n",
      "2.0791096687316895 3.1248929500579834\n",
      "2.017388105392456 3.1255903244018555\n",
      "2.018397092819214 3.1225244998931885\n",
      "2.0459022521972656 3.130707025527954\n",
      "1.9437246322631836 3.126742362976074\n",
      "1.955249309539795 3.1263785362243652\n",
      "1.905942678451538 3.116636037826538\n",
      "1.9384350776672363 3.1188485622406006\n",
      "1.95365309715271 3.1220104694366455\n",
      "2.070626974105835 3.1278698444366455\n",
      "2.0677480697631836 3.1232821941375732\n",
      "2.010080575942993 3.1172332763671875\n",
      "1.882493495941162 3.103940010070801\n",
      "2.1554529666900635 3.1211202144622803\n",
      "1.9594298601150513 3.1038594245910645\n",
      "2.1459667682647705 3.11324143409729\n",
      "1.8639788627624512 3.093693733215332\n",
      "1.9427928924560547 3.093341588973999\n",
      "2.080103635787964 3.1056034564971924\n",
      "1.9070433378219604 3.0898637771606445\n",
      "2.0564076900482178 3.097158432006836\n",
      "2.0696680545806885 3.101155996322632\n",
      "2.1715903282165527 3.109126567840576\n",
      "1.8568044900894165 3.081359624862671\n",
      "1.9665791988372803 3.086888551712036\n",
      "1.901946783065796 3.0796124935150146\n",
      "1.9756433963775635 3.091552734375\n",
      "1.8787927627563477 3.0841920375823975\n",
      "1.9422824382781982 3.092439651489258\n",
      "2.189112901687622 3.1116063594818115\n",
      "1.7016966342926025 3.079406976699829\n",
      "1.9567594528198242 3.0969491004943848\n",
      "1.9632937908172607 3.0918169021606445\n",
      "1.9115393161773682 3.085214853286743\n",
      "1.8809821605682373 3.0865063667297363\n",
      "1.92205810546875 3.0914478302001953\n",
      "1.8767774105072021 3.0824358463287354\n",
      "1.8950785398483276 3.0885069370269775\n",
      "1.9597464799880981 3.0971500873565674\n",
      "1.887737512588501 3.087857723236084\n",
      "1.9610029458999634 3.0982565879821777\n",
      "1.9979861974716187 3.104835271835327\n",
      "1.9058088064193726 3.0962038040161133\n",
      "1.968292236328125 3.101876735687256\n",
      "2.094417095184326 3.1131763458251953\n",
      "2.0543222427368164 3.1163723468780518\n",
      "2.010160446166992 3.110976219177246\n",
      "2.0008044242858887 3.110715866088867\n",
      "2.1522722244262695 3.1220717430114746\n",
      "2.0507659912109375 3.1172780990600586\n",
      "2.0529024600982666 3.1241283416748047\n",
      "1.7689738273620605 3.105170726776123\n",
      "1.9332594871520996 3.1104891300201416\n",
      "1.9285370111465454 3.1074166297912598\n",
      "1.9759769439697266 3.1136255264282227\n",
      "2.0650720596313477 3.1236979961395264\n",
      "1.6821696758270264 3.091632604598999\n",
      "2.2152504920959473 3.132810115814209\n",
      "1.917150855064392 3.1103110313415527\n",
      "1.733168363571167 3.100867748260498\n",
      "2.1815390586853027 3.1297268867492676\n",
      "1.9762811660766602 3.113694190979004\n",
      "2.19815993309021 3.127215623855591\n",
      "2.084244966506958 3.121565580368042\n",
      "1.9709733724594116 3.115750789642334\n",
      "2.075784921646118 3.118046522140503\n",
      "1.9454388618469238 3.1141371726989746\n",
      "2.0654284954071045 3.1227493286132812\n",
      "2.081010341644287 3.1284334659576416\n",
      "2.034303665161133 3.1303441524505615\n",
      "2.0384061336517334 3.1348111629486084\n",
      "1.974846363067627 3.132112741470337\n",
      "1.9644721746444702 3.128181219100952\n",
      "1.9559029340744019 3.1292076110839844\n",
      "2.0031416416168213 3.1341774463653564\n",
      "2.089691638946533 3.1387462615966797\n",
      "1.925948977470398 3.125674247741699\n",
      "2.0667033195495605 3.1427855491638184\n",
      "2.068552255630493 3.148534059524536\n",
      "2.132730484008789 3.158503293991089\n",
      "1.896113634109497 3.141852378845215\n",
      "2.059563398361206 3.152318239212036\n",
      "1.9849501848220825 3.146230697631836\n",
      "1.929857611656189 3.1395423412323\n",
      "1.8759536743164062 3.133274555206299\n",
      "2.0552926063537598 3.1483068466186523\n",
      "2.0748963356018066 3.1550025939941406\n",
      "1.9432976245880127 3.140390396118164\n",
      "2.0991525650024414 3.1538240909576416\n",
      "2.072554349899292 3.153446674346924\n",
      "2.0820908546447754 3.156810760498047\n",
      "1.9597105979919434 3.1463990211486816\n",
      "2.1612319946289062 3.1629066467285156\n",
      "2.037529706954956 3.1543354988098145\n",
      "2.1319875717163086 3.1567983627319336\n",
      "2.117954730987549 3.1560933589935303\n",
      "1.9399374723434448 3.147333860397339\n",
      "2.1402885913848877 3.1578636169433594\n",
      "1.9680273532867432 3.145477771759033\n",
      "2.0635743141174316 3.1513919830322266\n",
      "1.9851758480072021 3.142799139022827\n",
      "1.9907580614089966 3.14666748046875\n",
      "2.0423591136932373 3.151792287826538\n",
      "2.105921983718872 3.164694309234619\n",
      "1.9263602495193481 3.1500375270843506\n",
      "1.9557803869247437 3.1559457778930664\n",
      "2.0114378929138184 3.1621007919311523\n",
      "2.03692626953125 3.162825345993042\n",
      "1.9396915435791016 3.1545560359954834\n",
      "2.071319341659546 3.162151575088501\n",
      "1.9171565771102905 3.1472702026367188\n",
      "2.0708465576171875 3.169757604598999\n",
      "1.9931427240371704 3.1654789447784424\n",
      "1.7714778184890747 3.147425889968872\n",
      "2.1905276775360107 3.1754353046417236\n",
      "1.9983959197998047 3.166860580444336\n",
      "1.9805043935775757 3.165851593017578\n",
      "1.9606226682662964 3.1576077938079834\n",
      "2.1151294708251953 3.1720807552337646\n",
      "1.8452281951904297 3.159559488296509\n",
      "1.9913028478622437 3.1754684448242188\n",
      "2.1728687286376953 3.197115182876587\n",
      "1.8581275939941406 3.1722190380096436\n",
      "2.1368556022644043 3.1918423175811768\n",
      "1.9715867042541504 3.1712889671325684\n",
      "2.0397074222564697 3.1771697998046875\n",
      "2.0437328815460205 3.168731689453125\n",
      "2.0669350624084473 3.1721982955932617\n",
      "1.9803574085235596 3.16685152053833\n",
      "2.010105609893799 3.170776844024658\n",
      "1.9634630680084229 3.1608047485351562\n",
      "2.1037731170654297 3.1676573753356934\n",
      "1.9225800037384033 3.1509625911712646\n",
      "2.0967342853546143 3.1650476455688477\n",
      "1.9822264909744263 3.1546571254730225\n",
      "1.972263216972351 3.164311170578003\n",
      "1.9986951351165771 3.1714797019958496\n",
      "2.0052075386047363 3.171678304672241\n",
      "1.9834095239639282 3.170022487640381\n",
      "2.206402063369751 3.1940157413482666\n",
      "2.0913891792297363 3.184819459915161\n",
      "1.955285906791687 3.1738240718841553\n",
      "2.07361102104187 3.1849567890167236\n",
      "2.0400702953338623 3.189176559448242\n",
      "1.9980841875076294 3.188380241394043\n",
      "2.1219773292541504 3.1933212280273438\n",
      "1.9617044925689697 3.181727409362793\n",
      "1.9860728979110718 3.182082414627075\n",
      "1.9772425889968872 3.176546812057495\n",
      "1.847091555595398 3.1670987606048584\n",
      "2.0005645751953125 3.1875367164611816\n",
      "2.1004724502563477 3.1870503425598145\n",
      "2.041551351547241 3.173058032989502\n",
      "1.7556315660476685 3.152045965194702\n",
      "1.8919413089752197 3.166350841522217\n",
      "1.9930990934371948 3.1795778274536133\n",
      "1.8884111642837524 3.160062074661255\n",
      "1.9444618225097656 3.166447162628174\n",
      "2.085071325302124 3.1762640476226807\n",
      "1.9302165508270264 3.164214849472046\n",
      "2.078019142150879 3.1741321086883545\n",
      "2.0341522693634033 3.1676764488220215\n",
      "1.9356939792633057 3.1603009700775146\n",
      "2.0678300857543945 3.172375440597534\n",
      "2.033112049102783 3.168290853500366\n",
      "2.1144330501556396 3.1775543689727783\n",
      "1.865805983543396 3.162161350250244\n",
      "2.0085196495056152 3.1713783740997314\n",
      "2.0031912326812744 3.1688079833984375\n",
      "1.964511752128601 3.1653549671173096\n",
      "1.921940803527832 3.1569671630859375\n",
      "2.143665313720703 3.1763877868652344\n",
      "1.849228858947754 3.154313802719116\n",
      "1.9166276454925537 3.1618611812591553\n",
      "2.1412062644958496 3.171412229537964\n",
      "1.9504852294921875 3.1553421020507812\n",
      "2.028275728225708 3.1654393672943115\n",
      "1.9476934671401978 3.165536642074585\n",
      "1.8444747924804688 3.1506574153900146\n",
      "1.859466791152954 3.1564266681671143\n",
      "2.1275269985198975 3.178304672241211\n",
      "1.936113953590393 3.1674346923828125\n",
      "2.0416083335876465 3.1751363277435303\n",
      "1.9747633934020996 3.1683261394500732\n",
      "1.9057273864746094 3.1631014347076416\n",
      "1.802809715270996 3.1594934463500977\n",
      "1.9684820175170898 3.1645102500915527\n",
      "2.0426783561706543 3.166407823562622\n",
      "2.1120667457580566 3.1730566024780273\n",
      "2.0001821517944336 3.167771816253662\n",
      "2.004697799682617 3.1704304218292236\n",
      "2.0321810245513916 3.1703379154205322\n",
      "1.8939685821533203 3.1579461097717285\n",
      "2.0054171085357666 3.1652376651763916\n",
      "1.949062705039978 3.1670610904693604\n",
      "1.9963029623031616 3.1781721115112305\n",
      "1.9249722957611084 3.1633591651916504\n",
      "2.0434014797210693 3.1787030696868896\n",
      "1.8443496227264404 3.1667373180389404\n",
      "2.0033674240112305 3.1759042739868164\n",
      "1.9570857286453247 3.1742053031921387\n",
      "1.9681646823883057 3.1735715866088867\n",
      "2.132511615753174 3.1832785606384277\n",
      "1.97845458984375 3.1694045066833496\n",
      "1.7306013107299805 3.155914545059204\n",
      "1.858948826789856 3.1738131046295166\n",
      "2.1949081420898438 3.2010698318481445\n",
      "1.834649682044983 3.169163942337036\n",
      "1.9979573488235474 3.179633140563965\n",
      "1.9660965204238892 3.176248073577881\n",
      "2.0834741592407227 3.1850616931915283\n",
      "2.01492977142334 3.178600311279297\n",
      "2.0908195972442627 3.184506416320801\n",
      "2.0572586059570312 3.1769320964813232\n",
      "2.019554376602173 3.174391746520996\n",
      "2.0345301628112793 3.1715404987335205\n",
      "2.0085389614105225 3.1670429706573486\n",
      "2.0141818523406982 3.1726887226104736\n",
      "1.9900282621383667 3.1741600036621094\n",
      "1.9946568012237549 3.1719014644622803\n",
      "1.875003457069397 3.1584014892578125\n",
      "1.9471545219421387 3.1607491970062256\n",
      "1.8810453414916992 3.159626007080078\n",
      "2.045675754547119 3.174226999282837\n",
      "2.04276704788208 3.169978380203247\n",
      "2.1274595260620117 3.176816463470459\n",
      "1.826233148574829 3.157257556915283\n",
      "1.9648303985595703 3.168381929397583\n",
      "1.7837282419204712 3.1549928188323975\n",
      "2.0837018489837646 3.1754941940307617\n",
      "1.8868522644042969 3.1615653038024902\n",
      "2.0537900924682617 3.17106032371521\n",
      "2.0497286319732666 3.1721925735473633\n",
      "1.9192073345184326 3.155794858932495\n",
      "1.981593132019043 3.168706178665161\n",
      "2.0549678802490234 3.172102689743042\n",
      "2.0497422218322754 3.174711227416992\n",
      "1.989038348197937 3.1733410358428955\n",
      "2.043865203857422 3.1772172451019287\n",
      "2.148000478744507 3.190192461013794\n",
      "1.8360545635223389 3.168868064880371\n",
      "1.9856938123703003 3.1776070594787598\n",
      "1.9132483005523682 3.1734743118286133\n",
      "2.0149085521698 3.179387092590332\n",
      "1.963614821434021 3.1727871894836426\n",
      "2.032275438308716 3.178698778152466\n",
      "1.9413145780563354 3.17142653465271\n",
      "2.2262866497039795 3.196711540222168\n",
      "2.0957748889923096 3.184230089187622\n",
      "2.079073905944824 3.1798346042633057\n",
      "2.0180842876434326 3.180175542831421\n",
      "1.9108623266220093 3.169698476791382\n",
      "1.8232342004776 3.1642794609069824\n",
      "1.9360628128051758 3.1727254390716553\n",
      "1.9811394214630127 3.1771581172943115\n",
      "2.1105294227600098 3.1843819618225098\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.9376957416534424 3.1717052459716797\n",
      "1.8669272661209106 3.171128749847412\n",
      "1.9048614501953125 3.1674299240112305\n",
      "1.9352492094039917 3.1688051223754883\n",
      "1.9432018995285034 3.166800022125244\n",
      "2.009603261947632 3.1721034049987793\n",
      "2.023467779159546 3.1777915954589844\n",
      "1.9768797159194946 3.1747071743011475\n",
      "2.1163437366485596 3.180147409439087\n",
      "1.8966209888458252 3.1668059825897217\n",
      "1.9050508737564087 3.165281057357788\n",
      "2.0305745601654053 3.1762795448303223\n",
      "2.3134284019470215 3.1948864459991455\n",
      "1.9214452505111694 3.1657016277313232\n",
      "2.1423499584198 3.1813366413116455\n",
      "1.6936708688735962 3.148590087890625\n",
      "1.8134760856628418 3.1572320461273193\n",
      "2.156770944595337 3.179032564163208\n",
      "1.9107871055603027 3.1608188152313232\n",
      "1.92804753780365 3.1566836833953857\n",
      "2.121109962463379 3.170881986618042\n",
      "1.9874346256256104 3.158846855163574\n",
      "2.123112201690674 3.167955160140991\n",
      "1.8409931659698486 3.1438331604003906\n",
      "2.008490800857544 3.1605160236358643\n",
      "1.9919540882110596 3.158686399459839\n",
      "1.9682986736297607 3.1536028385162354\n",
      "1.9218182563781738 3.146697998046875\n",
      "2.1082043647766113 3.1621453762054443\n",
      "2.139357805252075 3.160459280014038\n",
      "1.8674712181091309 3.135010242462158\n",
      "1.9706239700317383 3.144078493118286\n",
      "1.7574225664138794 3.127631664276123\n",
      "1.9159849882125854 3.138481378555298\n",
      "1.91002357006073 3.1378116607666016\n",
      "2.0322182178497314 3.147266149520874\n",
      "2.00919771194458 3.1409051418304443\n",
      "2.0088906288146973 3.141467332839966\n",
      "2.1357421875 3.1531333923339844\n",
      "1.945481777191162 3.1411123275756836\n",
      "1.854301929473877 3.1305251121520996\n",
      "2.0404787063598633 3.14990234375\n",
      "1.957780122756958 3.1408820152282715\n",
      "2.106593608856201 3.1440882682800293\n",
      "1.9668110609054565 3.1300225257873535\n",
      "2.082144021987915 3.1363158226013184\n",
      "1.9197132587432861 3.1218039989471436\n",
      "1.8980062007904053 3.1215481758117676\n",
      "2.31535267829895 3.1450939178466797\n",
      "1.8996126651763916 3.115034341812134\n",
      "2.151034355163574 3.1313881874084473\n",
      "2.0563178062438965 3.126328468322754\n",
      "2.0850656032562256 3.125763416290283\n",
      "1.9156231880187988 3.113309383392334\n",
      "1.9692844152450562 3.121103525161743\n",
      "1.9620076417922974 3.1169395446777344\n",
      "2.0071933269500732 3.1207799911499023\n",
      "1.9681288003921509 3.1133861541748047\n",
      "2.0598433017730713 3.1190009117126465\n",
      "2.1327037811279297 3.1315059661865234\n",
      "2.138338804244995 3.131520986557007\n",
      "1.9054718017578125 3.108062505722046\n",
      "1.985927939414978 3.1143534183502197\n",
      "1.9070810079574585 3.1005148887634277\n",
      "1.9052588939666748 3.1007258892059326\n",
      "1.9552111625671387 3.102308511734009\n",
      "2.1610183715820312 3.1154041290283203\n",
      "1.946409821510315 3.093524694442749\n",
      "1.8842415809631348 3.089829921722412\n",
      "1.9889476299285889 3.099885940551758\n",
      "2.1119391918182373 3.1031017303466797\n",
      "1.9238440990447998 3.0866990089416504\n",
      "1.9157518148422241 3.0829789638519287\n",
      "2.025932550430298 3.0853586196899414\n",
      "2.047664165496826 3.0866990089416504\n",
      "1.9354726076126099 3.0857036113739014\n",
      "2.130002975463867 3.1032769680023193\n",
      "1.972221851348877 3.088527202606201\n",
      "1.9760701656341553 3.0855844020843506\n",
      "2.0728201866149902 3.095808982849121\n",
      "2.030351400375366 3.0991320610046387\n",
      "1.9973293542861938 3.095712423324585\n",
      "2.0378737449645996 3.0947954654693604\n",
      "1.87974214553833 3.080505609512329\n",
      "1.9248780012130737 3.083986759185791\n",
      "1.8628746271133423 3.075303554534912\n",
      "2.0120179653167725 3.087596893310547\n",
      "1.933254361152649 3.0826754570007324\n",
      "1.869511365890503 3.0747294425964355\n",
      "2.02700138092041 3.0879573822021484\n",
      "2.036517381668091 3.08638334274292\n",
      "1.9429551362991333 3.080822706222534\n",
      "2.0830161571502686 3.090219259262085\n",
      "2.0047316551208496 3.0780322551727295\n",
      "1.9678826332092285 3.0703048706054688\n",
      "1.9128268957138062 3.069640874862671\n",
      "2.0539658069610596 3.074028968811035\n",
      "1.9790279865264893 3.066110610961914\n",
      "1.9622230529785156 3.0717718601226807\n",
      "2.1825692653656006 3.0900847911834717\n",
      "2.048798084259033 3.073068857192993\n",
      "2.0679242610931396 3.071319341659546\n",
      "2.0396950244903564 3.0758841037750244\n",
      "2.099668502807617 3.087151288986206\n",
      "2.0399460792541504 3.0806162357330322\n",
      "2.0076310634613037 3.078671455383301\n",
      "2.078577995300293 3.08379864692688\n",
      "1.989713430404663 3.076700448989868\n",
      "1.9176197052001953 3.070913791656494\n",
      "2.044074296951294 3.0735015869140625\n",
      "1.9775055646896362 3.0612478256225586\n",
      "2.004284143447876 3.0610668659210205\n",
      "2.245314598083496 3.0814719200134277\n",
      "2.022315502166748 3.0638539791107178\n",
      "1.9809463024139404 3.06420636177063\n",
      "2.004730224609375 3.0635197162628174\n",
      "1.9291653633117676 3.054478883743286\n",
      "1.9786206483840942 3.055119514465332\n",
      "1.914240837097168 3.0562779903411865\n",
      "1.9719244241714478 3.056802988052368\n",
      "1.8543273210525513 3.0554871559143066\n",
      "2.2382125854492188 3.08575177192688\n",
      "1.9190359115600586 3.066110610961914\n",
      "2.074523687362671 3.075873374938965\n",
      "1.9356670379638672 3.057295560836792\n",
      "1.9811804294586182 3.0545127391815186\n",
      "1.9328516721725464 3.0495948791503906\n",
      "2.211930990219116 3.0689353942871094\n",
      "1.9388928413391113 3.0530076026916504\n",
      "1.9301977157592773 3.042060613632202\n",
      "1.9156811237335205 3.04374361038208\n",
      "2.120922327041626 3.0596237182617188\n",
      "2.0236740112304688 3.052389144897461\n",
      "1.9385671615600586 3.044086456298828\n",
      "2.038551092147827 3.046757936477661\n",
      "2.112858772277832 3.0520405769348145\n",
      "2.084787607192993 3.0444822311401367\n",
      "1.882643461227417 3.0293283462524414\n",
      "2.03072190284729 3.0477242469787598\n",
      "1.8365387916564941 3.0334713459014893\n",
      "2.0433316230773926 3.050755023956299\n",
      "1.979830026626587 3.047849416732788\n",
      "1.9070974588394165 3.0447022914886475\n",
      "1.9838930368423462 3.057635545730591\n",
      "2.23567795753479 3.076253890991211\n",
      "2.155364513397217 3.073282480239868\n",
      "2.017819404602051 3.0680317878723145\n",
      "1.93221116065979 3.064403533935547\n",
      "1.8708728551864624 3.0606844425201416\n",
      "1.850849986076355 3.0586936473846436\n",
      "2.0921363830566406 3.068960428237915\n",
      "2.1940791606903076 3.070596218109131\n",
      "2.1654903888702393 3.0678958892822266\n",
      "1.817253828048706 3.0455069541931152\n",
      "1.84857976436615 3.0467309951782227\n",
      "1.9050087928771973 3.046082019805908\n",
      "1.8504952192306519 3.0399441719055176\n",
      "1.8586289882659912 3.0397377014160156\n",
      "2.1517014503479004 3.059236526489258\n",
      "2.1613001823425293 3.0610413551330566\n",
      "2.023277997970581 3.052469491958618\n",
      "2.0401546955108643 3.0496597290039062\n",
      "2.0167863368988037 3.0428221225738525\n",
      "2.0441226959228516 3.0431439876556396\n",
      "2.0322158336639404 3.0384304523468018\n",
      "2.025239944458008 3.038254737854004\n",
      "1.9742568731307983 3.0236897468566895\n",
      "2.104759454727173 3.026198148727417\n",
      "1.8423916101455688 3.003618001937866\n",
      "2.124478816986084 3.022174119949341\n",
      "1.9883921146392822 3.0085561275482178\n",
      "2.0958662033081055 3.017486333847046\n",
      "2.0719871520996094 3.016115665435791\n",
      "1.7099250555038452 2.9915454387664795\n",
      "1.7716782093048096 2.9890732765197754\n",
      "1.9546420574188232 3.001887083053589\n",
      "1.8936289548873901 2.9968554973602295\n",
      "1.9497323036193848 3.0062222480773926\n",
      "1.915429711341858 3.0020086765289307\n",
      "1.9994615316390991 3.0069332122802734\n",
      "2.0220484733581543 3.0067150592803955\n",
      "1.9618533849716187 3.002185344696045\n",
      "1.8866239786148071 2.9993767738342285\n",
      "2.117647647857666 3.010967493057251\n",
      "2.112431764602661 3.0077688694000244\n",
      "2.1945040225982666 3.0107920169830322\n",
      "2.058488368988037 3.000225305557251\n",
      "2.030672073364258 3.0052988529205322\n",
      "2.044571876525879 3.0117597579956055\n",
      "2.017590045928955 3.008615016937256\n",
      "2.0127227306365967 3.009443998336792\n",
      "2.129913806915283 3.024188756942749\n",
      "1.8837090730667114 3.006068706512451\n",
      "2.0189154148101807 3.014735460281372\n",
      "2.087374448776245 3.017145872116089\n",
      "1.8363699913024902 3.002993583679199\n",
      "2.0577480792999268 3.0168721675872803\n",
      "1.9077692031860352 3.0009498596191406\n",
      "2.0447640419006348 3.0044639110565186\n",
      "2.0722992420196533 3.007850170135498\n",
      "1.8212134838104248 2.984255075454712\n",
      "2.0156655311584473 2.996551990509033\n",
      "2.0618736743927 3.0009686946868896\n",
      "2.0406994819641113 3.0061135292053223\n",
      "1.9024910926818848 2.9935100078582764\n",
      "1.7634013891220093 2.982614040374756\n",
      "2.023193120956421 3.0029213428497314\n",
      "2.020131826400757 3.010913372039795\n",
      "1.923317551612854 3.003849506378174\n",
      "1.8613321781158447 3.003727912902832\n",
      "2.1630542278289795 3.0280425548553467\n",
      "1.9295684099197388 3.0159788131713867\n",
      "2.185467004776001 3.037973403930664\n",
      "1.873737096786499 3.0110015869140625\n",
      "1.975123643875122 3.0243308544158936\n",
      "2.1953985691070557 3.0407073497772217\n",
      "1.7964024543762207 3.0155694484710693\n",
      "1.955795168876648 3.0243289470672607\n",
      "2.1483519077301025 3.0391862392425537\n",
      "2.086786985397339 3.029985189437866\n",
      "2.097532033920288 3.0320088863372803\n",
      "1.9258149862289429 3.0187346935272217\n",
      "1.9123855829238892 3.0209224224090576\n",
      "1.9795172214508057 3.0309481620788574\n",
      "1.8505821228027344 3.0215234756469727\n",
      "2.0346884727478027 3.0404951572418213\n",
      "2.0568137168884277 3.0516185760498047\n",
      "2.0804929733276367 3.055128574371338\n",
      "1.8595795631408691 3.0434136390686035\n",
      "1.9499157667160034 3.0541229248046875\n",
      "1.9987001419067383 3.0637032985687256\n",
      "1.9855291843414307 3.063631772994995\n",
      "1.9708607196807861 3.0607149600982666\n",
      "2.0156118869781494 3.0578742027282715\n",
      "1.9216684103012085 3.049067258834839\n",
      "1.941103458404541 3.051272392272949\n",
      "2.005770206451416 3.058732032775879\n",
      "1.8312870264053345 3.04392409324646\n",
      "1.91016685962677 3.0489349365234375\n",
      "1.9463379383087158 3.050309896469116\n",
      "1.919880747795105 3.0479044914245605\n",
      "2.03971791267395 3.058137893676758\n",
      "1.926553726196289 3.0500059127807617\n",
      "2.207270622253418 3.0699734687805176\n",
      "1.8779160976409912 3.048435926437378\n",
      "2.129457712173462 3.0671510696411133\n",
      "1.9894864559173584 3.0552592277526855\n",
      "2.124769687652588 3.0631978511810303\n",
      "2.1037731170654297 3.061434507369995\n",
      "1.9405934810638428 3.0415191650390625\n",
      "1.961719036102295 3.0444023609161377\n",
      "1.973984956741333 3.045896053314209\n",
      "1.9199858903884888 3.0393905639648438\n",
      "2.0042476654052734 3.0463204383850098\n",
      "1.8068816661834717 3.0380818843841553\n",
      "2.0180375576019287 3.0493476390838623\n",
      "1.9705904722213745 3.0425503253936768\n",
      "1.938716173171997 3.036668300628662\n",
      "1.8966970443725586 3.032104015350342\n",
      "2.136842966079712 3.0453426837921143\n",
      "2.012917995452881 3.036933183670044\n",
      "2.093012809753418 3.0427095890045166\n",
      "1.7850959300994873 3.0215070247650146\n",
      "2.22544002532959 3.04931640625\n",
      "1.9401555061340332 3.0312724113464355\n",
      "1.8982512950897217 3.0251271724700928\n",
      "1.8765228986740112 3.023526668548584\n",
      "1.9621473550796509 3.024554967880249\n",
      "2.114830493927002 3.046323299407959\n",
      "1.9347798824310303 3.0369722843170166\n",
      "1.9986722469329834 3.0458507537841797\n",
      "1.8475474119186401 3.0359249114990234\n",
      "1.9552524089813232 3.040403366088867\n",
      "1.9562020301818848 3.040372610092163\n",
      "2.0668652057647705 3.03651762008667\n",
      "2.192462682723999 3.047811508178711\n",
      "1.7815767526626587 3.0139620304107666\n",
      "1.8953741788864136 3.0151302814483643\n",
      "2.045991897583008 3.0173585414886475\n",
      "1.9795490503311157 3.015310764312744\n",
      "1.763683795928955 3.0022194385528564\n",
      "2.03031063079834 3.030482530593872\n",
      "1.882680892944336 3.0191545486450195\n",
      "1.9872400760650635 3.0300140380859375\n",
      "1.720449686050415 3.0007829666137695\n",
      "2.20748233795166 3.031155586242676\n",
      "2.0649309158325195 3.0285563468933105\n",
      "1.948366403579712 3.01796555519104\n",
      "1.9417897462844849 3.014357328414917\n",
      "1.936232089996338 3.0175440311431885\n",
      "1.8724398612976074 3.0160796642303467\n",
      "1.9090932607650757 3.0187623500823975\n",
      "2.019106149673462 3.0214948654174805\n",
      "1.904543161392212 3.0135750770568848\n",
      "1.989353895187378 3.018524169921875\n",
      "1.9908511638641357 3.0152428150177\n",
      "2.174705982208252 3.032040596008301\n",
      "1.9956330060958862 3.0094287395477295\n",
      "2.0417051315307617 3.009631633758545\n",
      "1.9372358322143555 3.0021755695343018\n",
      "2.011514902114868 3.007875919342041\n",
      "2.058542251586914 3.012601852416992\n",
      "1.9566006660461426 3.004323720932007\n",
      "2.0320615768432617 3.0123085975646973\n",
      "2.029625415802002 3.0129711627960205\n",
      "1.960774302482605 3.00223445892334\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.9208228588104248 3.0003647804260254\n",
      "2.0068743228912354 3.0124332904815674\n",
      "1.991748571395874 3.0119822025299072\n",
      "2.164421558380127 3.0217268466949463\n",
      "2.119306802749634 3.0201058387756348\n",
      "2.050548791885376 3.013098955154419\n",
      "1.9975193738937378 3.00716233253479\n",
      "2.031810760498047 3.006026268005371\n",
      "1.9624453783035278 2.9945645332336426\n",
      "2.0039050579071045 2.999805450439453\n",
      "1.9820759296417236 3.00079083442688\n",
      "1.9426782131195068 2.9988043308258057\n",
      "2.1853790283203125 3.0078420639038086\n",
      "1.861291766166687 2.984412908554077\n",
      "1.8704967498779297 2.9791343212127686\n",
      "2.057922840118408 2.994767427444458\n",
      "1.9676064252853394 2.993053674697876\n",
      "2.0768465995788574 3.004380941390991\n",
      "2.014542579650879 2.9965600967407227\n",
      "1.9847370386123657 3.005143165588379\n",
      "2.206216812133789 3.0197715759277344\n",
      "2.09330153465271 3.0147078037261963\n",
      "1.9429244995117188 3.005321502685547\n",
      "2.1290197372436523 3.0206027030944824\n",
      "1.9964545965194702 3.018073320388794\n",
      "1.9777836799621582 3.0197412967681885\n",
      "1.9962525367736816 3.0250918865203857\n",
      "1.9719479084014893 3.025419235229492\n",
      "2.070538282394409 3.0360584259033203\n",
      "1.768957495689392 3.008178472518921\n",
      "2.088662624359131 3.0340042114257812\n",
      "1.8201587200164795 3.0120344161987305\n",
      "1.8871605396270752 3.015378475189209\n",
      "1.9249778985977173 3.0225727558135986\n",
      "1.9148640632629395 3.0238211154937744\n",
      "2.1709909439086914 3.043393611907959\n",
      "2.1385562419891357 3.0348660945892334\n",
      "2.086463451385498 3.027097225189209\n",
      "1.9287680387496948 3.013380289077759\n",
      "2.0560848712921143 3.03043532371521\n",
      "2.091824531555176 3.025799036026001\n",
      "2.0986034870147705 3.0263397693634033\n",
      "2.1244351863861084 3.025193452835083\n",
      "2.064263105392456 3.0173401832580566\n",
      "1.8148853778839111 2.9954469203948975\n",
      "2.0230963230133057 3.0033133029937744\n",
      "2.018846273422241 2.996640682220459\n",
      "2.1021127700805664 3.007654905319214\n",
      "1.9763823747634888 2.9904837608337402\n",
      "2.049478054046631 2.9903104305267334\n",
      "1.9937126636505127 2.9841063022613525\n",
      "1.9629415273666382 2.9875268936157227\n",
      "1.960409164428711 2.9836676120758057\n",
      "2.0179295539855957 2.9889461994171143\n",
      "2.0021631717681885 2.984684944152832\n",
      "2.0204224586486816 2.983814239501953\n",
      "1.8615825176239014 2.9750688076019287\n",
      "1.8952555656433105 2.9725422859191895\n",
      "2.082993507385254 2.983185291290283\n",
      "1.963370442390442 2.97591495513916\n",
      "2.1057097911834717 2.9883081912994385\n",
      "1.9586039781570435 2.9802627563476562\n",
      "2.0376880168914795 2.9853262901306152\n",
      "1.8652794361114502 2.968154191970825\n",
      "1.9252936840057373 2.967668294906616\n",
      "2.0023305416107178 2.976994037628174\n",
      "1.9131269454956055 2.9830033779144287\n",
      "1.9087330102920532 2.9811739921569824\n",
      "1.9772801399230957 2.978248357772827\n",
      "2.166661262512207 2.990755319595337\n",
      "1.9682087898254395 2.972747564315796\n",
      "1.9015055894851685 2.9648988246917725\n",
      "2.0196895599365234 2.9724230766296387\n",
      "1.9261873960494995 2.9608826637268066\n",
      "2.0323479175567627 2.969862937927246\n",
      "1.9919248819351196 2.969740629196167\n",
      "1.9891101121902466 2.9732346534729004\n",
      "1.9713860750198364 2.9639570713043213\n",
      "1.9638795852661133 2.961974620819092\n",
      "1.9719537496566772 2.9611597061157227\n",
      "2.142540693283081 2.973975896835327\n",
      "2.087841033935547 2.9768521785736084\n",
      "2.0209801197052 2.9752187728881836\n",
      "1.8699947595596313 2.968383550643921\n",
      "1.9012830257415771 2.9681808948516846\n",
      "1.9724299907684326 2.974630117416382\n",
      "2.009082317352295 2.9768903255462646\n",
      "1.9755821228027344 2.971505880355835\n",
      "2.0333220958709717 2.970665454864502\n"
     ]
    }
   ],
   "source": [
    "for i in range(20000):\n",
    "    x,y=get_fake_data()\n",
    "    # forward\n",
    "    y_pred=x.mm(w)+b.expand_as(y)\n",
    "    loss=0.5*(y_pred-y)**2\n",
    "    loss=loss.sum()\n",
    "    \n",
    "    # backward\n",
    "    dloss=1\n",
    "    dy_pred=dloss*(y_pred-y)\n",
    "    \n",
    "    dw=x.t().mm(dy_pred)\n",
    "    db=dy_pred.sum()\n",
    "    \n",
    "    w.sub_(lr*dw)\n",
    "    b.sub_(lr*db)\n",
    "    \n",
    "    if i%1000==0:\n",
    "        display.clear_output(wait=True)\n",
    "        x=t.arange(0,20).view(-1,1)\n",
    "        y=x.mm(w)+b.expand_as(x)\n",
    "        plt.plot(x.numpy(),y.numpy())\n",
    "        \n",
    "        x2,y2=get_fake_data(batch_size=20)\n",
    "        plt.scatter(x2.numpy(),y2.numpy())\n",
    "        \n",
    "        plt.xlim(0,20)\n",
    "        plt.ylim(0,41)\n",
    "        plt.show()\n",
    "        plt.pause(0.5)\n",
    "    print(w.squeeze()[0],b.squeeze()[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
